package com.xy.biz.base.support.bizcode;

import com.xy.biz.base.domain.bo.BizCodeBO;

/**
 * 业务编码生成逻辑
 *
 */
public interface BizCodeGenerator {

    /**
     * 算法服务名前缀
     */
    String ALGORITHM_SERVICE_PREFIX = "BizCodeGenerator";
    /**
     * 简单算法
     */
    int ALGORITHM_SIMPLE = 0;
    /**
     * 雪花算法
     */
    int ALGORITHM_SNOWFLAKE = 1;

    /**
     * 获取时间戳
     * @return
     */
    long getTimestamp();

    /**
     * 生成新的编码
     *
     * @param bizCodeBO     编码规则
     * @param nextValue     下一个顺序数
     * @return
     */
    String generate(BizCodeBO bizCodeBO, int nextValue);

}
